我使用log4j进行日志记录,使用属性文件进行配置.目前,我的日志文件太大(3.5 GB对于日志文件来说太大).所以我认为我需要使用RollingFileAppender - 但是当我这样做时,日志文件继续变得过大.我相信我错误配置了它; 有没有人有一个配置RollingFileAppender 的工作示例?
为了记录,我当前的配置如下所示:
log4j.appender.MAIN_LOG.File=${catalina.base}/logs/webtop.log
log4j.appender.MAIN_LOG=org.apache.log4j.RollingFileAppender
log4j.appender.MAIN_LOG.layout=com.mycompany.util.log.Log4JSimpleLayout
log4j.appender.MAIN_LOG.DatePattern='.'yyyy-MM-dd
log4j.appender.MAIN_LOG.MaxFileSize=10MB
log4j.appender.MAIN_LOG.MaxBackupIndex=99
log4j.appender.MAIN_LOG.append=true
log4j.rootCategory=ALL, MAIN_LOG
Run Code Online (Sandbox Code Playgroud)
RollingFileAppender的替代方案也是一个很好的解决方案.
我在这里有这个代码:
import re
def get_attr(str, attr):
m = re.search(attr + r'=(\w+)', str)
return None if not m else m.group(1)
str = 'type=greeting hello=world'
print get_attr(str, 'type') # greeting
print get_attr(str, 'hello') # world
print get_attr(str, 'attr') # None
Run Code Online (Sandbox Code Playgroud)
哪个有效,但我不是特别喜欢这一行:
return None if not m else m.group(1)
Run Code Online (Sandbox Code Playgroud)
在我看来,如果我们可以使用三元运算符,这看起来会更清晰:
return (m ? m.group(1) : None)
Run Code Online (Sandbox Code Playgroud)
但那当然不存在.你有什么建议?
如何为Asp.Net成员资格提供程序配置连接字符串?我是否必须手动编写或在Visual Studio中可以使用任何工具来指定连接字符串以及用于存储密码的算法?
我读了一篇文章,它指定了这个连接字符串: -
<configuration>
<connectionStrings>
<remove name=”LocalSqlServer”/>
<add name="LocalSqlServer" connectionString="Data Source=localhost;Initial Catalog=appservicesdb;Integrated Security=True" providerName="System.Data.SqlClient"/>
</connectionStrings>
</configuration>
Run Code Online (Sandbox Code Playgroud)
这个LocalSqlServer名字听起来不太直观.我该如何改变?
提前致谢 :)
我创建了一个自定义AlertDialog来显示Spinner和一些EditText元素.当我选择菜单选项时,会启动此自定义AlertDialog.一切正常,直到我实际选择微调器来尝试选择一个项目,此时我得到了BadTokenException.我已经读过其他StackOverflow帖子,说类似的异常是尝试使用getApplicationContext()而不是传递Activity.this来显示diaglog的结果.我没有明确地将getApplicationContext()传递给与此AlertDialog相关的任何内容.
为了设置这个自定义AlertDiaglog,我创建了一个包含Spinner和EditText元素的布局文件,然后使AlertDialog使用该布局:
LayoutInflater inflater = (LayoutInflater)getApplication().getSystemService(LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.custom_layout, (ViewGroup)findViewById(R.id.custom_layout_root));
spinner = (Spinner)layout.findViewById(R.id.custom_layout_spinner);
ArrayAdapter adap = ArrayAdapter.createFromResource(Activity.this, R.array.data, android.R.layout.simple_spinner_item);
adap.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adap);
spinner.setOnItemSelectedListener(new SpinnerItemListener());
AlertDialog.Builder dialog = new AlertDialog.Builder(Activity.this);
dialog.setTitle("Title");
dialog.setPositiveButton("Ok", new Dialog.OnClickListener() ...
...
dialog.show();
Run Code Online (Sandbox Code Playgroud)
此代码都可以正常显示AlertDialog.但是,当我实际触摸Spinner时,我遇到以下问题:
Thread [<3> main] (Suspended (exception WindowManager$BadTokenException))
ViewRoot.handleMessage(Message) line: 1704
ViewRoot(Handler).dispatchMessage(Message) line: 99
Looper.loop() line: 123
ActivityThread.main(String[]) line: 4203
Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method]
Method.invoke(Object, Object...) line: 521
ZygoteInit$MethodAndArgsCaller.run() line: 791
ZygoteInit.main(String[]) line: 549
NativeStart.main(String[]) line: not …Run Code Online (Sandbox Code Playgroud) 这是一个讨厌的Subversion错误还是我以错误的方式接近它?
将分支合并到主干中. - > HelloWorld.txt更新
恢复HelloWorld.txt
再次进行相同的合并. - >没有文件更新.
为什么第二次合并不会再次更新HelloWorld?它的行为好像已经复制了这个更改.不应该还原重置吗?
如果还原HelloWorld所在的整个文件夹,则第二个合并会再次正确应用更改.只有当您还原文件失败时才会这样.
这有点可怕.如果我现在需要还原一些文件怎么办?任何未来的合并都将无法复制关键代码.
Subversion 1.6 OS X 10.6.4
我想使用GROUP BY子句从表中选择一堆数据.这很好用,但我需要按照创建日期的顺序对数据进行排序ORDER BY.我的问题是,我可以在同一个查询中使用这两个子句,还是应该在子查询中使用其中一个,还是其他什么?
原始查询(无修改)是这样的:
SELECT *
FROM table
WHERE tag_draft=0
AND
(
(target_id=2 AND tag_del_target=0)
OR (source_id=2 AND tag_del_source=0)
)
AND updated IN
(
SELECT MAX(updated)
FROM table
GROUP BY thread_id
)
ORDER BY updated DESC
Run Code Online (Sandbox Code Playgroud)
希望这个问题足够可读,以便能够回答它.
我正在编写一个脚本,需要检查特定提交是否是合并/恢复提交,我想知道是否有一个git技巧.
到目前为止我提出的(我绝对不想依赖于提交消息)是检查HASH^2并查看我是否没有收到错误,是否有更好的方法?
我有一个简单的linq查询:
var k = people.Select(x=>new{x.ID, x.Name});
Run Code Online (Sandbox Code Playgroud)
然后我想要一个函数或linq lambda,或者使用逗号和"ands"以句子格式输出名称的东西.
{1, John}
{2, Mark}
{3, George}
Run Code Online (Sandbox Code Playgroud)
至
"1:John, 2:Mark and 3:George"
Run Code Online (Sandbox Code Playgroud)
我很好用硬编码ID + ":" + Name部件,但它可能是一个ToString(),具体取决于linq查询结果的类型.我只是想知道是否有一个简洁的方法来使用linq或String.Format().
我正在寻找方法来减少浪费时间来打开所需的所有应用程序,定位窗口,打开网址/文件/更改目录等.在实际编码开始之前.
在完美的世界中,每个'项目'将有2个按钮标记为'SAVE STATE'和'RESTORE STATE'.您在某些游戏中找到的功能.
我在Mac上花了几个小时用'Automator'敲打我的头(由于某种原因甚至有问题甚至从码头打开火狐)然后是AppleScript(这让我感觉我很长时间骑了).
在网上搜索引导我到这个脚本:
http://snipt.net/Fotinakis/applescript-to-save-and-restore-window-positions/
#!/usr/bin/osascript
-- Usage:
-- $ osacompile -o windowPositions.compiled.scpt windowPositions.scpt
-- $ osascript windowPositions.compiled.scpt --save
-- $ osascript windowPositions.compiled.scpt --restore
-- Change this to be the list of windows you want to save/restore
property affectedProcesses : {"Chrome", "Adium", "Eclipse", "Terminal"}
property windowRecord : {}
on run argv
if (count of argv) is equal to 0 then
log "Please specify one of --save or --restore."
return
end if
tell application "System Events"
if (item 1 …Run Code Online (Sandbox Code Playgroud) 我知道我可以做以下事情:
>>> import encodings, pprint
>>> pprint.pprint(sorted(encodings.aliases.aliases.values()))
['ascii',
'base64_codec',
'big5',
'big5hkscs',
'bz2_codec',
'cp037',
'cp1026',
'cp1140',
'cp1250',
'cp1251',
'cp1252',
'cp1253',
'cp1254',
'cp1255',
'cp1256',
'cp1257',
'cp1258',
'cp424',
'cp437',
'cp500',
'cp775',
'cp850',
'cp852',
'cp855',
'cp857',
'cp860',
'cp861',
'cp862',
'cp863',
'cp864',
'cp865',
'cp866',
'cp869',
'cp932',
'cp949',
'cp950',
'euc_jis_2004',
'euc_jisx0213',
'euc_jp',
'euc_kr',
'gb18030',
'gb2312',
'gbk',
'hex_codec',
'hp_roman8',
'hz',
'iso2022_jp',
'iso2022_jp_1',
'iso2022_jp_2',
'iso2022_jp_2004',
'iso2022_jp_3',
'iso2022_jp_ext',
'iso2022_kr',
'iso8859_10',
'iso8859_11',
'iso8859_13',
'iso8859_14',
'iso8859_15',
'iso8859_16',
'iso8859_2',
'iso8859_3',
'iso8859_4',
'iso8859_5',
'iso8859_6',
'iso8859_7',
'iso8859_8',
'iso8859_9',
'johab',
'koi8_r',
'latin_1',
'mac_cyrillic',
'mac_greek',
'mac_iceland', …Run Code Online (Sandbox Code Playgroud)